# ДЗ 
Требуется реализовать методы в `Bitmask.cs`, и проверить их тестами `BitmaskTest.cs`

*Запуск тестов:* 
**Visual Studio**
Откройте обозреватель тестов, выбрав Тест > Обозреватель тестов в верхней строке меню (или нажмите клавиши CTRL + E, T).
Запустите модульные тесты, нажав Запустить все (или нажмите клавиши CTRL + R, V).

### 1. Маски подсети
★★★

Чтобы проверить, принадлежит ли конкретный IP адрес подсети, использую "маски подсети".

Считается, что любой IP адрес, который под эту маску подходит, ей принадлежит.

Подходит -- там, где в маске нули - в адресе нули, там где в маске 1 - 0 или 1.

И IP адрес и маска состоят из 32 битов. Для того, чтобы людям было проще с ними работать, они записываются в десятеричной системе счисления по одному байту через точку.

Например IP адрес, которому соответствует маска: 
 `01111111 00000000 00000000 00000001`
, записывается как `127.0.0.1`.

Вам нужно написать функцию, которая принимает на вход маску и IP адрес (в строковом формате) и возвращает true, если маска принадлежит подсети.
Циклы в данном ДЗ использовать запрещено. 
 
```C#
public static boolean IsSubmask(string mask, string submask);
```

### 2. ror/rol
★★★

В ассемблере есть специальные битовые команды, которые позволяют "вращать биты по кругу". 
Вам нужно реализовать на C# функцию, которая делает то же самое.
Например:

```C#
rotate(0B11010000000000001000000000000010, 2)
```

Должен вернуть

```C#
10110100 00000000 00100000 00000000
```